/**
 * 报销业务处理接口类
 * @author 郑翎
 * 2015-10-1 11:07:43
 */
package com.cbts.service.travel;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.cbts.entity.ApplayReim;
import com.cbts.entity.BusinessTravel;
import com.cbts.entity.BusinessTravelList;
import com.cbts.entity.Receipt;
import com.cbts.entity.ReceiptId;

public interface ApplayReimService {
	
	/**
	 * 获得用户“待报销”和“报销不通过”的出差列表
	 * @param userid 员工号
	 * @return List<BusinessTravelList>
	 * @throws Exception
	 */
	public List<BusinessTravelList> getNoApplayTravelList(String userid) throws Exception;

	/**
	 * 根据出差单号获取具体的出差信息列表
	 * @param travelOrder 出差单号
	 * @return List<BusinessTravel>
	 * @throws Exception
	 */
	public List<BusinessTravel> getTravelInfoList(String travelOrder) throws Exception;

	/**
	 * 根据出差单号获取出差列表
	 * @param travelOrder 出差单号
	 * @return BusinessTravelList
	 * @throws Exception
	 */
	public BusinessTravelList getTravelListByOrder(String travelOrder) throws Exception;
	
	/**
	 * 根据出差单号获取报销信息
	 * @param travelOrder 出差单号
	 * @return ApplayReim
	 * @throws Exception
	 */
	public ApplayReim getApplayReim(String travelOrder) throws Exception;

	/**
	 * 根据报销单号获取收据信息
	 * @param travelOrder 出差单号
	 * @return List<Receipt>
	 * @throws Exception
	 */
	public List<Receipt> getReceiptFile(String travelOrder) throws Exception;
	
	/**
	 * 将上传的收据保存
	 * @param file 文件列表
	 * @param fileFileName 文件名列表
	 * @param receipt 收据
	 * @param applayReim 报销记录
	 * @param userid  员工号
	 * @return boolean
	 * @throws IOException
	 */
	public boolean saveApplayReim(List file,List<String> fileFileName,Receipt receipt,ApplayReim applayReim,String userid) throws IOException;
	
	/**
	 * 保存报销记录
	 * @param applayReim 报销记录
	 * @return boolean
	 */
	public boolean saveApplayReimByValues(ApplayReim applayReim);
	
	/**
	 * 删除收据
	 * @param receiptId 收据Id
	 * @return boolean
	 */
	public boolean deleteReceipt(ReceiptId receiptId);
}